CentOS中使用shutdown.sh关闭Tomcat后发现进程还在,如果这个时候再重新启动,可能引发各种不可意料的问题,网上找到的解释是:因为项目中有非守护线程的存在,下面给出解决方案:

1. 查看Tomcat状态

请移步 CentOS查看Tomcat是否正在运行 进行查看

2. 解决方案

2.1 进入到tomcat的bin目录下,使用vi命令打开catalina.sh文件

[root@localhost bin]# vi catalina.sh

使用vi命令:"/",找到 PRGDIR=dirname "$PRG" 这里(大约第139行),换行,添加以下语句,保存退出

if [ -z "$CATALINA_PID" ]; then
  CATALINA_PID=$PRGDIR/CATALINA_PID
fi

2.2 进入到tomcat的bin目录下,使用vi命令打开shutdown.sh文件

[root@localhost bin]# vi shutdown.sh 

移动到文件最后面,找到 exec "$PRGDIR"/"$EXECUTABLE" stop "$@" ,添加 -force 信息,保存退出

exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"

结束,关闭Tomcat查看信息即可